<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!--
Generated from $Fink: uguide.en.xml,v 1.55 2010/07/10 23:21:42 alexkhansen Exp $
-->
<title>Fink Documentation - Fink User's Guide</title></head><body>
<table width="100%" cellspacing="0">
<tr valign="bottom">
<td align="center">
Available Languages:  | 
<a href="uguide.de.html">Deutsch</a> | 
English | 
<a href="uguide.es.html">Espa&ntilde;ol</a> | 
<a href="uguide.fr.html">Fran&ccedil;ais</a> | 
<a href="uguide.ja.html">&#26085;&#26412;&#35486; (Nihongo)</a> | 
<a href="uguide.pt.html">Portugu&ecirc;s</a> | 
<a href="uguide.ru.html">&#1056;&#1091;&#1089;&#1089;&#1082;&#1080;&#1081; (Russkiy)</a> | 
<a href="uguide.zh.html">&#20013;&#25991; (&#31616;) (Simplified Chinese)</a> | 
</td>
</tr>
</table>
<h1 style="text-align: center;">Fink User's Guide</h1>
    <p>
This document gives an overview over all features of Fink.
(The following older documents may offer a broader view:
<a href="http://www.finkproject.org/doc/bundled/install.php">Installation</a>,
<a href="http://www.finkproject.org/doc/bundled/usage.php">Usage</a>
and the ReadMe.rtf included in the binary distribution disk image.)
Also check out the
<a href="http://www.finkproject.org/doc/">documentation
section</a> of the web site, it has some other useful documents
beyond that.
</p>
    <p>
Welcome to the Fink User's Guide.
This guide covers first time installation and upgrade procedures for
both the source and the binary distribution.
Package installation and maintenance is covered as well.
</p>
  <h2>Contents</h2><ul><li><a href="#intro"><b>1 Introduction</b></a><ul><li><a href="#intro.what">1.1 What is Fink?</a></li><li><a href="#intro.req">1.2 Requirements</a></li><li><a href="#intro.supported-os">1.3 Supported Systems</a></li><li><a href="#intro.src-vs-bin">1.4 Source vs. Binary</a></li></ul></li><li><a href="#install"><b>2 First Time Installation</b></a><ul><li><a href="#install.bin">2.1 Installing the Binary Distribution</a></li><li><a href="#install.src">2.2 Installing the Source Distribution</a></li><li><a href="#install.setup">2.3 Setting Up Your Environment</a></li></ul></li><li><a href="#packages"><b>3 Installing Packages</b></a><ul><li><a href="#packages.bin-dselect">3.1 Installing Binary Packages with
dselect</a></li><li><a href="#packages.bin-apt">3.2 Installing Binary Packages with
apt-get</a></li><li><a href="#packages.bin-exceptions">3.3 Installing Dependent Packages that are Unavailable in the Binary Distribution</a></li><li><a href="#packages.src">3.4 Installing Binary and Source Packages with fink</a></li><li><a href="#packages.fink-commander">3.5 Fink Commander</a></li><li><a href="#packages.available-versions">3.6 Available versions</a></li><li><a href="#packages.x11">3.7 Getting X11 Sorted Out</a></li></ul></li><li><a href="#upgrade"><b>4 Upgrading Fink</b></a><ul><li><a href="#upgrade.bin">4.1 Upgrading using Binary Packages</a></li><li><a href="#upgrade.src">4.2 Upgrading the Source Distribution</a></li><li><a href="#upgrade.mix">4.3 Mixing Binaries and Source</a></li></ul></li><li><a href="#conf"><b>5 The Fink Configuration File</b></a><ul><li><a href="#conf.about">5.1 About fink.conf</a></li><li><a href="#conf.syntax">5.2 fink.conf syntax</a></li><li><a href="#conf.required">5.3 Required Settings</a></li><li><a href="#conf.optional">5.4 Optional User Settings</a></li><li><a href="#conf.downloading">5.5 Download Settings</a></li><li><a href="#conf.mirrors">5.6 Mirror Settings</a></li><li><a href="#conf.developer">5.7 Developer Settings</a></li><li><a href="#conf.advanced">5.8 Advanced Settings</a></li><li><a href="#conf.sourceslist">5.9 Managing apt's sources.list file</a></li></ul></li><li><a href="#usage"><b>6 Using the fink Tool from the Command Line</b></a><ul><li><a href="#usage.using">6.1 Using the fink tool</a></li><li><a href="#usage.options">6.2 Global options</a></li><li><a href="#usage.install">6.3 install</a></li><li><a href="#usage.remove">6.4 remove</a></li><li><a href="#usage.purge">6.5 purge</a></li><li><a href="#usage.update-all">6.6 update-all</a></li><li><a href="#usage.list">6.7 list</a></li><li><a href="#usage.apropos">6.8 apropos</a></li><li><a href="#usage.describe">6.9 describe</a></li><li><a href="#usage.plugins">6.10 plugins</a></li><li><a href="#usage.fetch">6.11 fetch</a></li><li><a href="#usage.fetch-all">6.12 fetch-all</a></li><li><a href="#usage.fetch-missing">6.13 fetch-missing</a></li><li><a href="#usage.build">6.14 build</a></li><li><a href="#usage.rebuild">6.15 rebuild</a></li><li><a href="#usage.reinstall">6.16 reinstall</a></li><li><a href="#usage.configure">6.17 configure</a></li><li><a href="#usage.selfupdate">6.18 selfupdate</a></li><li><a href="#usage.selfupdate-rsync">6.19 selfupdate-rsync</a></li><li><a href="#usage.selfupdate-cvs">6.20 selfupdate-cvs</a></li><li><a href="#usage.index">6.21 index</a></li><li><a href="#usage.validate">6.22 validate</a></li><li><a href="#usage.scanpackages">6.23 scanpackages</a></li><li><a href="#usage.cleanup">6.24 cleanup</a></li><li><a href="#usage.dumpinfo">6.25 dumpinfo</a></li><li><a href="#usage.show-deps">6.26 show-deps</a></li></ul></li></ul><h2><a name="intro">1 Introduction</a></h2>
    
    
    <h3><a name="intro.what">1.1 What is Fink?</a></h3>
      
      <p>
Fink is a distribution of Unix Open Source software for Mac OS X and
Darwin.
It brings a wide range of free command-line and graphical software
developed for Linux and similar operating systems to your Mac.
</p>
    
    <h3><a name="intro.req">1.2 Requirements</a></h3>
      
      <p>
In any case you will need:
</p>
      <ul>
        <li>
          <p>
An installed Mac OS X system, version 10.4 or later, or equivalent
Darwin releases.
Earlier versions of both will <b>not</b> work.
See below for more information about supported systems.
</p>
        </li>
        <li>
          <p>
Internet access.
Both source code and binary packages are downloaded from Internet
download sites.
</p>
        </li>
      </ul>
      <p>
If you intend to use the source distribution (see below), you will
also need:
</p>
      <ul>
        <li>
          <p>
Developer tools.  
On Mac OS X, install the XcodeTools.mpkg package from the installation DVD,
or <a href="http://connect.apple.com">download</a> the latest version--this is often desirable, as later versions frequently fix issues (though admittedly sometimes they break things).    
Note that the tools must match your Mac OS X version.
</p>
          <p>
It's a good idea to have XCode installed even if you
don't intend to build packages from source.
Some of the programs installed by the package are actually general
purpose command line tools.
Some packages may depend on those to run.
</p>
        </li>
        <li>
          <p>
Patience.
Compiling several big packages takes time.
I'm talking hours or even days here.
</p>
        </li>
      </ul>
    
    <h3><a name="intro.supported-os">1.3 Supported Systems</a></h3>
      
      <p><b>Mac OS X 10.6</b> is the leading-edge platform, and is considered to be <q>fully supported and tested</q>, though as a newer operating system there are still some issues.  Most of the developers run it, and those who are running 10.4 have 10.5 users test their work.</p>
      <p>
        <b>Mac OS X 10.5</b> is considered to be <q>fully supported and tested</q>, although there may still be stray compile problems with single packages. Many of the developers run it, and those who don't have 10.4 users test their work.
</p>
      <p><b>Mac OS X 10.4</b> will be deprecated soon.  It is considered to be <q>fully supported and tested</q>.</p>
    
    <h3><a name="intro.src-vs-bin">1.4 Source vs. Binary</a></h3>
      
      <p>
Software is written ("developed") in human-readable programming
languages; this form is called the "source code".
Before a computer can actually run a program, it must be transformed
into low-level machine code instructions (unreadable by most humans).
That process is called "compiling" and the resulting program is called
"executable" or "binary".
(The process is also referred to as "building", because it usually
involves more steps than just compiling.)
</p>
      <p>
When you buy commercial software you don't get to see the source code,
though - companies treat it as a trade secret.
You only get the ready-to-run executable, which means you have no way
to modify the program or even find out what it actually does when it's
run.
</p>
      <p>
Not so with <a href="http://www.opensource.org/">Open Source</a>
software.
As the name implies, the source code is open for anyone to see and
modify.
In fact, most Open Source software is only distributed as source code
by its authors, and you must compile it on your computer to get a
program that can be run.
</p>
      <p>
Fink lets you choose between the two models.
The "source" distribution will download the original source, adapt it
to Mac OS X and to Fink's policy, and compile it on your computer.
That process is fully automated, but takes some time.
The "binary" distribution on the other hand will download pre-compiled
packages from the Fink site and install those, saving you the time for
compiling.
It is actually possible to mix the two models at will.
The rest of this manual will show you how.
</p>
    
  <h2><a name="install">2 First Time Installation</a></h2>
    
    
    
      <p>
During first time installation, a base system with the package
management tools is installed on your machine.
After that you must set up your shell environment to use the software
installed by Fink.
You only need to do this once; you can upgrade any Fink installation
in place, without reinstalling.
This is covered in the <a href="#upgrade">Upgrading
chapter</a>.
</p>
      <p>
Once you have the package management tools installed, you can use them
to install more software.
This is covered in the <a href="#packages">Installing Packages
chapter</a>.
</p>
    
    <h3><a name="install.bin">2.1 Installing the Binary Distribution</a></h3>
      
      <p>
The binary distribution comes as a Mac OS X installer package (.pkg),
wrapped in a disk image (.dmg).
After downloading the disk image from the
<a href="http://www.finkproject.org/download/bindist.php">download page</a>
(you may have to use your browser's "Save Target as..." or "Download
to Disk" function), double-click it to mount it.
Open the "Fink 0.x.x Installer" disk icon that appears on your desktop (or wherever you downloaded it) after Disk Utility has verified the file.
Inside you'll find some documentation and an installer package.
Double-click the installer package and follow the instructions on
screen.
</p>
      <p>
You will be asked for an administrator password and shown some texts.
Please read them - they may be more up-to-date than this user's guide.
When the installer prompts you for a drive to install to, be sure to
pick your system volume (the one on which you installed Mac OS X).
If you pick the wrong volume, the install will proceed, but Fink won't
work afterwards.
When the installer is finished, proceed with the
<a href="#install.setup">Setting Up Your Environment</a> section.
</p>
    
    <h3><a name="install.src">2.2 Installing the Source Distribution</a></h3>
      
      <p>
The source distribution comes as a standard Unix tarball (.tar.gz).
It contains only the <tt style="white-space: nowrap;">fink</tt> package manager and will download the source for packages on the fly.
You can get it from the
<a href="http://www.finkproject.org/download/srcdist.php">download page</a>.
Older versions of StuffIt Expander have difficuly with handling long file names, so if you have any problems you'll need to remove the folder it generates and follow the command-line instructions below.
</p>
      <p>
The source release must be installed from the command line, so open
Terminal.app and change to the directory where you put the
 <tt style="white-space: nowrap;">fink-0.27.x.tar.gz</tt> archive.  Your web browser may have partially extracted the archive; in this case you will have <tt style="white-space: nowrap;">fink-0.27.x.tar</tt> in your download directory, and you should skip the first command below.

The following commands extract the archive:
</p>
      
      <pre>
gunzip fink-0.27.x.tar.gz
tar -xf fink-0.27.x.tar</pre>
      <p>
That creates a directory with the same name as the archive.
We'll just keep on using the placeholder 
<tt style="white-space: nowrap;">fink-0.27.x</tt> here.
Now, change into that directory and run the bootstrap script:
</p>
      <pre>cd fink-0.27.x
./bootstrap</pre>
      <p>
The script will run some checks on your system and use sudo to become
root - that will prompt you for your password.
Then, the script will ask you for the installation path.
Unless you have a good reason, you should use the default -
<tt style="white-space: nowrap;">/sw</tt>.
Only that will allow you to install downloaded binary packages later
on.
Also, all examples use that path; be sure to substitute your actual
path if you use a different one.
</p>
      <p>
Next up is Fink configuration.
You'll be asked for things like proxy and mirror settings and whether
you want verbose messages.
If you don't understand a question, just press return to accept the
default choice.
You can re-run this process later using the <tt style="white-space: nowrap;">fink
configure</tt> command.
</p>
      <p>
When the bootstrap script has all the information it needs, it will
start to download the source code for the base system and compile it.
No further interaction should be necessary at this point.
Don't worry if you see some packages being compiled twice.
This is required because to build a binary package of the package
manager, you first must have the package manager available.
</p>
      <p>
When the bootstrap is finished, proceed with the
<a href="#install.setup">Setting Up Your Environment</a> section.
</p>
    
    <h3><a name="install.setup">2.3 Setting Up Your Environment</a></h3>
      
      <p>
To use the software installed in Fink's directory hierarchy, including
the package management programs themselves, you must set your PATH
environment variable (and some others) accordingly.  Current Fink versions do this automatically, and typically you will just need to open a new Terminal.app window to ensure that these settings are applied.  However, in some instances you will need to proceed manually.</p>
<p>In most cases, you can do this by entering the command
      </p>
      <pre>/sw/bin/pathsetup.sh</pre>
      <p>
	in a terminal window. </p>
      <p>Note that for some older versions of
	fink the program was called  <tt style="white-space: nowrap;">pathsetup.command</tt>, and one could
	run it via <tt style="white-space: nowrap;">open /sw/bin/pathsetup.command</tt>.      </p>
      <p>However, if this doesn't work for some reason, you can configure it
manually.  This will depend on the shell you are using, however.
You can determine the shell you are using by opening a terminal and
running the command:
</p>
      <pre>echo $SHELL</pre>
      <p>
 If it says "csh" or "tcsh" in it, you are using the C shell.  If it is
 bash, zsh, sh, or something similar, you are likely running a variant
 of the bourne shell.
</p>
      <ul>
        <li>
          <p>
            Bourne Shell (default on Mac OS X 10.3 and later) </p>
          <p>
   If you use a Bourne style shell (e.g. sh, bash, zsh), add the following
   lines to the file <tt style="white-space: nowrap;">.profile</tt> in your home directory (or, if
   you have an existing <tt style="white-space: nowrap;">.bash_profile</tt> file, you should use that
   instead):
  </p>
          <pre>. /sw/bin/init.sh</pre>
          <p>
   If you don't know how to add the line, run these commands:
  </p>
          <pre>cd
pico .profile</pre>
          <p>
   You are now in a full-screen (well, full terminal window) text editor and
   can simply start typing the <tt style="white-space: nowrap;">. /sw/bin/init.sh</tt> line.  It's
   okay if there is a note that says "New file".  Be sure that you pressed
   Return at least once after the line, then press Control-O, Return,
   Control-X to get out of the editor.
  </p>
        </li>
        <li>
          <p>
            C Shell (default on Mac OS X 10.2 and earlier) </p>
          <p>
   If you use tcsh, add the following line to
   the file <tt style="white-space: nowrap;">.cshrc</tt> in your home directory:
  </p>
          <pre>source /sw/bin/init.csh</pre>
          <p>
   If you don't know how to add the line, run these commands:
  </p>
          <pre>cd
pico .cshrc</pre>
          <p>
   You are now in a full-screen (well, full terminal window) text editor
   and can simply start typing the <tt style="white-space: nowrap;">source /sw/bin/init.csh</tt>
   line.
   It's okay if there is a note that says "New file".
   Be sure that you pressed Return at least once after the line, then
   press Control-O, Return, Control-X to get out of the editor.
  </p>
          <p>There are a couple of common situations where you may need to edit additional files:</p>
          <ol>
            <li>
              <p>You have a <tt style="white-space: nowrap;">~/.tcshrc</tt>.</p>
              <p>Such a file occasionally gets created by third-party applications, or 
  you may have done it yourself.
  In any case what will happen is that <tt style="white-space: nowrap;">~/.tcshrc</tt> gets read and 
  <tt style="white-space: nowrap;">~/.cshrc</tt> is ignored.
  The recommended procedure is to edit <tt style="white-space: nowrap;">~/.tcshrc</tt> in a similar 
  manner to how you edited
  <tt style="white-space: nowrap;">~/.cshrc</tt> above, and add the following line at the end:</p>
              <pre>source ~/.cshrc</pre>
              <p>That way, if you ever need to remove <tt style="white-space: nowrap;">~/.tcshrc</tt>, you will be able to run Fink.</p>
            </li>
            <li>
              <p>You followed the instructions under <tt style="white-space: nowrap;">/usr/share/tcsh/examples/README</tt>.</p>
              <p>These instructions tell you to create a <tt style="white-space: nowrap;">~/.tcshrc</tt> and a<tt style="white-space: nowrap;"> ~/.login</tt> .  The problem in this case is with <tt style="white-space: nowrap;">~/.login</tt>, which gets run after <tt style="white-space: nowrap;">~/.tcshrc</tt>, and sources <tt style="white-space: nowrap;">/usr/share/tcsh/examples/login</tt>.  The latter contains a line that overwrites your previous PATH setup.  What you should do in this case is create <tt style="white-space: nowrap;">~/Library/init/tcsh/path</tt>:</p>
              <pre>mkdir -p ~/Library/init/tcsh
  pico ~/library/init/tcsh/path</pre>
              <p>and put:</p>
              <pre>source ~/.cshrc</pre>
              <p>in it.  You should also modify your .tcshrc as in item 1 above, to make sure that your PATH is set correctly for situations where <tt style="white-space: nowrap;">~/.login</tt> doesn't get read.</p>
            </li>
          </ol>
          <p>
  Editing .cshrc (and other startup files) will only affect new shells (i.e. newly opened Terminal
  windows), so you should also run this command in all Terminal windows
  that you opened before you edited the file.
  You'll also need to run <tt style="white-space: nowrap;">rehash</tt> because tcsh caches the
  list of available commands internally.
  </p>
        </li>
      </ul>
      <p>
Note that the <tt style="white-space: nowrap;">init.sh</tt> and <tt style="white-space: nowrap;">init.csh</tt> scripts also add <tt style="white-space: nowrap;">/usr/X11R6/bin</tt> and
<tt style="white-space: nowrap;">/usr/X11R6/man</tt> to your PATH so you can use X11 when
it is installed.
Fink packages have the ability to add settings of their own, e.g. the
qt package sets the QTDIR environment variable.
</p>
      <p>
Once your environment is set up,  you will need to grab package descriptions as per the <a href="#upgrade">Upgrading Fink</a> chapter under <b>Upgrading the Source Distribution</b>, and then proceed to the
<a href="#packages">Installing Packages</a> chapter to see how
you can install some actually useful packages using the various
package management tools included in Fink.  
 
</p>
    
  <h2><a name="packages">3 Installing Packages</a></h2>
    
    
    
      <p>
Now that you have something that can be called a Fink installation,
this chapter shows you how to install the actual software packages you
came for.
Before we explain how to install packages using either the source or
the binary distribution, some important notes that apply to both.
</p>
    
    <h3><a name="packages.bin-dselect">3.1 Installing Binary Packages with
dselect</a></h3>
      
      <p>
        <tt style="white-space: nowrap;">dselect</tt> is a program that lets you browse the list of
available packages and select which ones you want installed.
It runs inside Terminal.app, but takes over the whole "screen" and
uses simple keyboard navigation.
Like the other package management tools, <tt style="white-space: nowrap;">dselect</tt> requires
root privileges, so you should use sudo (from an account with administrator privileges):
</p>
      <pre>sudo dselect</pre>
      <p>
        <b>Note:</b>
        <tt style="white-space: nowrap;">dselect</tt> has known difficulties with the Mac OS X Terminal application.  You should run the following commands before using it, or put them in the appropriate startup file (e.g. <tt style="white-space: nowrap;">.cshrc</tt> / <tt style="white-space: nowrap;">.profile</tt>):</p>
      <p>bash users:</p>
      <pre>export TERM=xterm-color</pre>
      <p>tcsh users:</p>
      <pre>setenv TERM xterm-color</pre>
      <p>
The main menu has several choices:
</p>
      <ul>
        <li>
          <p>
            <b>[A]ccess</b> - this configures the network access method to use.
<b>You do not need to run this</b>, since Fink pre-configures
everything for you.
Actually, you should avoid this menu item as it may overwrite the
default configuration with one that doesn't work.
</p>
        </li>
        <li>
          <p>
            <b>[U]pdate</b> - this item downloads the list of available packages
from the Fink site.
This item does not install or update any actual packages, it just
updates the listings used for the package browser.
You must run this at least once after installing Fink.
</p>
        </li>
        <li>
          <p>
            <b>[S]elect</b> - this gives you the actual package listing, where
you can select and deselect the packages you want on your system.
More about this later.
</p>
        </li>
        <li>
          <p>
            <b>[I]nstall</b> - this is where the action is.
The menu items above only affect dselect's package listings and status
database.
This one actually goes out and downloads and installs the packages you
have requested.
It also removes the packages you have deselected in the browser.
</p>
        </li>
        <li>
          <p>
            <b>[C]onfig</b> and <b>[R]emove</b> - these are relics from the
time before apt.
You do not need them, although they won't do harm.
</p>
        </li>
        <li>
          <p>
            <b>[Q]uit</b> - now that should really be obvious.
</p>
        </li>
      </ul>
      <p>
You'll spend most of your time with dselect in the package browser,
reachable through the "[S]elect" menu item.
Before dselect shows you the package list, it presents you with an
introductory help screen.
You can press 'k' to get a full listing of keyboard commands, or just
Space to get to the package list.
</p>
      <p>
You can move through the list using the up and down keys.
Selections are made with '+' and '-'.
When you select a package that needs some other packages, dselect will
show you a sublist with the affected packages.
In most cases you can just press Return to accept dselect's choices.
You can also make adjustments in the sublist (e.g. to choose another
alternative for a virtual package dependency), or press 'R'
(i.e. Shift-R) to return to the previous state.
Both the sublists and the main package list are left by pressing
Return.
When you're happy with your selections, leave the main list and use
the "[I]nstall" menu item to actually install the packages.
</p>
    
    <h3><a name="packages.bin-apt">3.2 Installing Binary Packages with
apt-get</a></h3>
      
      <p>
        <tt style="white-space: nowrap;">dselect</tt> doesn't actually download the packages itself.
Instead, it runs apt to do the dirty work.
If you prefer a pure command line interface, you can access the
functions of apt directly, with the <tt style="white-space: nowrap;">apt-get</tt> command.
</p>
      <p>
Like with dselect, you must first download the current listing of
available packages with this command:
</p>
      <pre>sudo apt-get update</pre>
      <p>
Like the "[U]pdate" menu item in dselect, this doesn't update the
actual files on your computer, just apt's list of available packages.
To install a package, you just give apt-get the name, like this:
</p>
      <pre>sudo apt-get install lynx</pre>
      <p>
If apt-get determines that the packages requires other packages to be
installed, it will show you the list and ask for confirmation.
It then downloads and installs the requested packages.
Removing packages is just as easy:
</p>
      <pre>sudo apt-get remove lynx</pre>
      <p>
      </p>
    
    <h3><a name="packages.bin-exceptions">3.3 Installing Dependent Packages that are Unavailable in the Binary Distribution</a></h3>
      
      <p>Sometimes, when doing a binary install, you may get messages that a dependency can't be installed. e.g.:</p>
      <pre>Sorry, but the following packages have unmet
dependencies:
foo: Depends: bar (&gt;= version) but it is
not installable
E: Sorry, broken packages</pre>
      <p>What has happened is that the package you are trying to install depends on another package that can't be distributed as a binary, due to licensing requirements.  You must install the dependency from source (see the next section).</p>
    
    <h3><a name="packages.src">3.4 Installing Binary and Source Packages with fink</a></h3>
      
      <p>
The <tt style="white-space: nowrap;">fink</tt> tool will allow you to install packages that are not yet
available in the <a href="#intro.src-vs-bin">binary
distribution</a>.
      </p>
      <p>First of all, you'll need an appropriate version of the Developer Tools for your system.  The latest version is available for free download after registration at <a href="http://connect.apple.com">http://connect.apple.com</a>.  </p>
      <p>
To get a list of packages that are available for installation from
source, ask the <tt style="white-space: nowrap;">fink</tt> tool:
</p>
      <pre>fink list</pre>
      <p>
The first column lists the installation state (blank for not
installed, <tt style="white-space: nowrap;">i</tt> for installed, <tt style="white-space: nowrap;">(i)</tt> for
installed but not the latest version), followed by the package name,
the latest version, and a short description.
You can ask for more information about a specific package using the
"describe" command ("info" is an alias for this):
</p>
      <pre>fink describe xmms</pre>
      <p>
When you have found a package that you want to install, use the
"install" command:
</p>
      <pre>fink install wget-ssl</pre>
      <p>
The <tt style="white-space: nowrap;">fink</tt> command will first check if all necessary
prerequisites ("dependencies") are present, and will ask you if it's
okay to install them if some are missing.
Then it goes ahead and downloads source code, unpacks it, patches it,
compiles it, and installs the results on your system.
This can take a long time.
If you run into errors during that process, please first check the
<a href="http://www.finkproject.org/faq/">FAQ</a>.
      </p>
      <p>
You can tell <tt style="white-space: nowrap;">fink</tt> to try to download
pre-compiled binary packages, if available, instead of building them. Just pass
the <a href="#usage.options">--use-binary-dist (or -b)
option</a> to <tt style="white-space: nowrap;">fink</tt>. This can save you a lot of time. E.g.
calling
      </p>
      <pre>fink --use-binary-dist install wget-ssl</pre>
      <p>or</p>
      <pre>fink -b install wget-ssl</pre>
      <p>
will first download all dependencies for wget-ssl that are available from the
binary distribution and only build the remainder from source. This option can
also be enabled permanently in the <a href="#conf">Fink configuration
file</a> (fink.conf) or by running the command <tt style="white-space: nowrap;">fink configure</tt>.
      </p>
      <p>
More details about the <tt style="white-space: nowrap;">fink</tt> tool are available in the chapter 
<a href="#usage">"Using the fink Tool from the Command Line"</a>.
      </p>
    
    <h3><a name="packages.fink-commander">3.5 Fink Commander</a></h3>
      
      <p>Fink Commander is an Aqua interface to both <tt style="white-space: nowrap;">apt-get</tt> and the <tt style="white-space: nowrap;">fink</tt> tool.  The Binary menu lets you do operations on the binary distribution, and the Source menu does the same thing for the source distribution.</p>
      <p>Fink Commander is included with the Fink binary installer.  To download it separately (e.g. if you've bootstrapped Fink from source), or for additional information, visit the <a href="http://finkcommander.sourceforge.net">Fink Commander website</a>.</p>
    
    <h3><a name="packages.available-versions">3.6 Available versions</a></h3>
      
      <p>When you want to install a package, you should first check the <a href="http://pdb.finkproject.org/pdb/index.php">package database</a> and see if it is available at all through Fink.  The available version(s) of the package will be shown in several rows of a table.  These are:</p>
      <ul>
        <li>Binary Distribution
          <ol>
            <li><p><b>0.8.1:</b>  This is the base version that can be installed from binaries for OS 10.4.  If you <a href="#install.bin">update</a> Fink, later versions of some packages may be available.</p></li>
            <li><p><b>0.9.0:</b>  This is the base version that can be installed from binaries for OS 10.5.  If you <a href="#install.bin">update</a> Fink, later versions of some packages may be available.</p></li>
          </ol></li>
        <li>CVS/rsync Distributions
          <ol>
            <li><p><b>10.4/powerpc stable:</b>  This is the most recent version that can be installed from the stable source tree for OS 10.4 users 
on PowerPC hardware.</p></li>
            <li><p><b>10.4/intel stable:</b>  This is the most recent version that can be installed from the stable source tree for OS 10.4 users
on intel hardware.</p></li>
            <li><p><b>10.4/powerpc unstable:</b>  This is the most recent version that can be installed from the unstable source tree for OS 10.4 users
on PowerPC hardware.</p></li>
            <li><p><b>10.4/intel unstable:</b>  This is the most recent version that can be installed from the unstable source tree for OS 10.4 users
on intel hardware.</p>
                <p>Note:  <b>unstable</b> doesn't necessarily mean <b>unusable</b>, but install such packages at your own risk.</p>
</li>
            <li><p><b>10.5/powerpc stable:</b>  This is the most recent version that can be installed from the stable source tree for OS 10.5 users 
on PowerPC hardware.</p></li>
            <li><p><b>10.5/intel stable:</b>  This is the most recent version that can be installed from the stable source tree for OS 10.5 users
on intel hardware.</p></li>
            <li><p><b>10.5/powerpc unstable:</b>  This is the most recent version that can be installed from the unstable source tree for OS 10.5 users
on PowerPC hardware.</p></li>
            <li><p><b>10.5/intel unstable:</b>  This is the most recent version that can be installed from the unstable source tree for OS 10.5 users
on intel hardware.</p></li>
          </ol></li>
      </ul>
    
    <h3><a name="packages.x11">3.7 Getting X11 Sorted Out</a></h3>
      
      <p>Many of the packages that are available via Fink require the installation of some form of X11.  Because of this, one of the first things that is typically done is to choose an X11 implementation.</p>
      <p>
Since there are several X11 implementations available for Mac OS X
(Apple's X11, XFree86, X.org) and several ways to install them
(manually or via Fink), there are several alternative packages - one
for each setup. 
Here is a list of the available X11 packages and installation methods:
</p>
      <ul>
        <li>
          <p>
            <b>xfree86, xfree86-shlibs:</b>
Install both of these packages for XFree86-4.5.0 (OS 10.4 only).  
</p>
        </li>
        <li><p><b>xorg, xorg-shlibs</b> (OS 10.4 only )  Install these packages to get the 6.8.2 release of the X.org X11 distribution.</p></li>
        <li>
          <p>
<b>system-xfree86 + -shlibs, -dev:</b>
These packages are automatically generated if you install Apple's X11, or manually installed XFree86 or X.org.  
They will then act as
dependency placeholders.
</p>
        </li>
      </ul>
      <p>
For more information on installing and running X11, refer to the
<a href="http://www.finkproject.org/doc/x11/">X11 on Darwin
and Mac OS X document</a>.
</p>
    
  <h2><a name="upgrade">4 Upgrading Fink</a></h2>
    
    
    
      <p>
This chapter covers the procedures used to update your Fink
installation with the latest and greatest stuff.
</p>
    
    <h3><a name="upgrade.bin">4.1 Upgrading using Binary Packages</a></h3>
      
      <p>
If you use the binary distribution exclusively, there is no separate
upgrade procedure.
Just ask the tool of your choice to get the latest package listing
from the server and let it update all packages.
</p>
      <p>
For dselect, it is sufficient to hit "[U]pdate", then "[I]nstall".
Of course, you may want to run "[S]elect" in between to check the
selections that were made and to find out about new packages.
</p>
      <p>
For apt, run <tt style="white-space: nowrap;">apt-get update</tt> to get the latest package
list, then <tt style="white-space: nowrap;">apt-get upgrade</tt> to update all packages that
have new versions available.
</p>
      <p>For Fink Commander, select Binary-&gt;Update descriptions to update the package list, and then Binary-&gt;Dist-Upgrade packages to update to new versions.</p>
      <p>
For more information, see the
<a href="http://www.finkproject.org/download/upgrade.php">Upgrade Matrix</a>.
</p>
    
    <h3><a name="upgrade.src">4.2 Upgrading the Source Distribution</a></h3>
      
      <p>
If you use the source distribution the procedure consists of two steps.
In the first step, you download the latest package descriptions to
your computer.
In the second step, these package descriptions are used to compile new
packages; the actual source code is downloaded as needed.
</p>
      <p>
The first step can be accomplished by
running <tt style="white-space: nowrap;">fink selfupdate</tt>.
That command will check with the Fink website to see if a new point
release is available, and will automatically download and install the
package descriptions in that case.
You also have the
option to pull package descriptions directly from CVS or via rsync.
CVS is a version-controlled repository where the package descriptions
are stored and managed.
Using CVS has the advantage that it is updated continuously, but the disadvantage that there is a single CVS server for Fink, and it can be unreliable if there is a lot of traffic.  For this reason, it is recommended that general users go with rsync.  There are multiple mirrors available for rsync, and the only disadvantage is that package descriptions take an hour or so to migrate to the rsync mirrors after they've been added to CVS.
</p>
      <p>(If you are having trouble upgrading a source installation, consult
<a href="http://www.finkproject.org/download/fix-upgrade.php">these
special instructions</a>.)</p>
      <p>
Once you have updated your package descriptions (no matter which way),
you should update all packages at once with the command <tt style="white-space: nowrap;">fink
update-all</tt>.
</p>
      <p>To update the source distribution using Fink Commander, select Source-&gt;Selfupdate to download new package information files, and then Source-&gt;Update-all to update your outdated packages.</p>
    
    <h3><a name="upgrade.mix">4.3 Mixing Binaries and Source</a></h3>
      
      <p>
If you use precompiled binary packages for some packages and build
others from source, you'll have to follow both sets of instructions
above to upgrade your Fink installation.
That is, first use <tt style="white-space: nowrap;">dselect</tt> or <tt style="white-space: nowrap;">apt-get</tt> to get
the latest versions of the packages that are available as binaries,
then use <tt style="white-space: nowrap;">fink selfupdate</tt> and <tt style="white-space: nowrap;">fink update-all</tt>
to get the current package descriptions and to update the remaining
packages.
		</p>
      <p>
You may use the UseBinaryDist option (settable via the
<a href="#usage.options">--use-binary-dist (or -b) option</a>
or in the <a href="#conf">Fink configuration file</a>) both source and
binary descriptions will be updated if you call <tt style="white-space: nowrap;">fink selfupdate</tt>.
In this case you don't need a separate <tt style="white-space: nowrap;">apt-get</tt> call anymore.
     </p>
      <p>
If you are using Fink Commander select Binary-&gt;Update descriptions to update
the package list, and then Binary-&gt;Dist-Upgrade packages to update to new
versions. After that do Source-&gt;Selfupdate to download new package
information files, and then Source-&gt;Update-all (see previous sections for
details).
      </p>
    
  <h2><a name="conf">5 The Fink Configuration File</a></h2>
    
    
    
      <p>
This chapter explains the settings available in the Fink configuration
file (fink.conf) and how they influence the behaviour of Fink, specifically the <tt style="white-space: nowrap;">fink</tt> command-line tool (i.e. mainly working with the source distribution).
</p>
    
    <h3><a name="conf.about">5.1 About fink.conf</a></h3>
      
      <p>
When Fink is initially installed it prompts you for the answers to some
questions to set up your configuration file, such as which <a href="#conf.mirrors">mirrors</a> you want to use for downloading files
and how to acquire super-user rights. You can re-run this process by
calling the <tt style="white-space: nowrap;">fink configure</tt> command. In order to set some
options, you may need to edit your <b>fink.conf</b> file by hand. In
general, these options are meant for advanced users only.
</p>
      <p>
The <b>fink.conf</b> file is located at
<tt style="white-space: nowrap;">/sw/etc/fink.conf</tt>, and can be edited in your favourite
text editor. You will need super-user rights to edit it.
</p>
    
    <h3><a name="conf.syntax">5.2 fink.conf syntax</a></h3>
      
      <p>
Your fink.conf file consists of multiple lines, in the format:</p>
      <pre>OptionName: Value</pre>
      <p>Options are one per line, and the option name is separated from its
value by a : and a single space. The contents of value depends on the
option, but it is normally either a boolean ("True" or "False"), a
string, or a list of strings delimited by a space. 
For example:
</p>
      <pre>
BooleanOption: True
StringOption: Something
ListOption: Option1 Option2 Option3
</pre>
    
    <h3><a name="conf.required">5.3 Required Settings</a></h3>
      
      <p>
Some of the settings in the <tt style="white-space: nowrap;">fink.conf</tt> file are mandatory. Without
them Fink cannot function properly. The following settings belong to
this category.
</p>
      <ul>
        <li>
          <p>
            <b>Basepath:</b> path</p>
          <p>
Tells <b>fink</b> where it was installed. Defaults to <b>/sw</b> unless you
changed it during the initial installation of the Fink distribution. You should
<b>not</b> change this value after installation, it will confuse <b>fink</b>.
</p>
        </li>
      </ul>
    
    <h3><a name="conf.optional">5.4 Optional User Settings</a></h3>
      
      <p>
There are various optional settings which users can customize to change
the behaviour of Fink.
</p>
      <ul>
        <li>
          <p>
            <b>RootMethod:</b> su or sudo or none</p>
          <p>For some operations, Fink needs super user rights. Recognized values
are <b>sudo</b> or <b>su</b>. You can also set this to
<b>none</b>, in which case you must run Fink as root yourself. The
default value is <b>sudo</b> and in most cases it should not be
changed.</p>
        </li>
        <li>
          <p>
            <b>Trees:</b> list of trees</p>
          <p>Available trees are:</p>
          <pre>
local/main      - any local packages you want to install
local/bootstrap - packages used during the installation of Fink
stable/crypto   - stable cryptographic packages
stable/main     - other stable packages
unstable/crypto - unstable cryptographic packages
unstable/main   - other unstable packages
</pre>
          <p>
You may also add your own trees in <tt style="white-space: nowrap;">/sw/fink/dists</tt> for your own purposes, but this is not necessary in most
circumstances. The default trees are "local/main local/bootstrap
stable/main". This list is automatically kept in sync with the
<tt style="white-space: nowrap;">/sw/etc/apt/sources.list</tt> file.</p><p>The order of the trees is meaningful, as packages from later trees in the list may
           override packages from earlier ones.</p>
        -</li>
        <li>
          <p>
            <b>Distribution:</b> 10.4</p>
          <p>Fink needs to know which version of Mac OS X you are
running. Mac OS X 10.0 and earlier are not supported, and 10.1 and 10.2 are no
longer supported by current versions of <tt style="white-space: nowrap;">fink</tt>. Mac OS X 10.2 users are 
restricted to fink-0.24.7, released in June 2005.  This
field is set by running the <tt style="white-space: nowrap;">/sw/lib/fink/postinstall.pl</tt>
script. You should not need to alter this value manually.
</p>
        </li>
        <li>
          <p>
            <b>FetchAltDir:</b> path</p>
          <p>usually <tt style="white-space: nowrap;">fink</tt> will store the sources it fetches in
<tt style="white-space: nowrap;">/sw/src</tt>. You can specify an alternate directory to look for
downloaded source code in using this option. For example:
</p>
          <pre>FetchAltDir: /usr/src</pre>
        </li>
        <li>
          <p>
            <b>Verbose:</b> a number from 0 to 3</p>
          <p>
This option sets how much information Fink tells you about what it is
doing. The values are:
<b>0</b>
            Quiet (don't show download stats)
<b>1</b>
            Low (don't show tarballs being expanded)
<b>2</b>
            Medium (shows almost everything)
<b>3</b>
            High (shows everything)
The default value is 1.
</p>
        </li>
        <li><p><b>SkipPrompts:</b> a comma-delimited list</p><p>(<tt style="white-space: nowrap;">fink-0.25</tt> and later) This option instructs <tt style="white-space: nowrap;">fink</tt> to refrain from asking for input when
           the user does not want to be prompted. Each prompt belongs to a
           category. If a prompt's category is in the SkipPrompts list then
           the default option will be chosen within a very short period of
           time.</p><p>Currently, the following categories of prompts exist:</p><p><b>fetch</b> - Downloads and mirrors</p><p><b>virtualdep</b> - Choosing between alternative packages</p><p> By default, no prompts are skipped.</p></li>
        <li>
          <p>
            <b>NoAutoIndex:</b> boolean</p>
          <p>Fink caches its package description files in /sw/var/db/fink.db to
save it having to read and parse them all every time it runs. Fink
checks whether or not the package index needs to be updated unless this
option is set to "True". It defaults to "False" and it is not
recommended that you change it. If you do, you may need to run
the <tt style="white-space: nowrap;">fink index</tt> command manually to update the index.</p>
        </li>
        <li>
          <p>
            <b>SelfUpdateNoCVS:</b> boolean</p>
          <p>The command <tt style="white-space: nowrap;">fink selfupdate</tt> upgrades Fink package
manager to the latest release. This option makes sure that the
Concurrent Version System (CVS) is not used to achieve this when set to
True. It is set automatically by the <tt style="white-space: nowrap;">fink
selfupdate-cvs</tt> command, so you should not need to change it
manually.</p>
        </li>
        <li>
	  <p>
	    <b>Buildpath:</b> path</p>
	  <p>Fink needs to create several temporary directories for
each package it compiles from source. By default, they are placed
in <tt style="white-space: nowrap;">/sw/src</tt> on Panther and earlier, and 
<tt style="white-space: nowrap;">/sw/src/fink.build</tt> on Tiger. If you want them to be
somewhere else, specify the path here. See the descriptions of
the <tt style="white-space: nowrap;">KeepRootDir</tt> and <tt style="white-space: nowrap;">KeepBuildDir</tt> fields
 in the <a href="#conf.developer">Developer Settings</a> section of this document for more information about these temporary
directories.
	    </p>
	    <p>On Tiger, it is recommended that the Buildpath end with <tt style="white-space: nowrap;">.noindex</tt>
or <tt style="white-space: nowrap;">.build</tt>. Otherwise, Spotlight will attempt to index the temporary files in
the Buildpath, slowing down builds.
    	</p>
	</li>
        <li><p><b>Bzip2Path:</b> the path to your <tt style="white-space: nowrap;">bzip2</tt> (or compatible) binary
          </p><p>(<tt style="white-space: nowrap;">fink-0.25</tt> and later) The Bzip2Path option lets you override the default path for the
           <tt style="white-space: nowrap;">bzip2</tt> command-line tool.  This allows you to specify an alternate
           location to your <tt style="white-space: nowrap;">bzip2</tt> executable, pass optional command-line
           options, or use a drop-in replacement like <tt style="white-space: nowrap;">pbzip2</tt> for decompressing
           <tt style="white-space: nowrap;">.bz2</tt> archives.</p></li>
      </ul>
    
    <h3><a name="conf.downloading">5.5 Download Settings</a></h3>
      
      <p>There are various settings which influence the way Fink downloads
package data.</p>
      <ul>
        <li>
          <p>
            <b>ProxyPassiveFTP:</b> boolean</p>
          <p>This option makes Fink use "passive" mode for FTP downloads. Some
FTP server or network configurations require this option to be set to
True. It is recommended that you leave this option on at all
times since active FTP is deprecated.</p>
        </li>
        <li>
          <p>
            <b>ProxyFTP:</b> url</p>
          <p>If you use a FTP proxy then you should enter its address here, for
example:</p>
          <pre>ProxyFTP: ftp://yourhost.com:2121/</pre>
          <p>Leave it blank if you do not use a FTP proxy.</p>
        </li>
        <li>
          <p>
            <b>ProxyHTTP:</b> url</p>
          <p>If you use a HTTP proxy then you should enter its address here, for
example:</p>
          <pre>ProxyHTTP: http://yourhost.com:3128/</pre>
          <p>Leave if blank if you do not use a HTTP proxy.</p>
        </li>
        <li>
          <p>
            <b>DownloadMethod:</b> wget or curl or axel or axelautomirror</p>
          <p>Fink can use three different applications to download files from the
Internet - <b>wget</b>, <b>curl</b>, or <b>axel</b>. The value
<b>axelautomirror</b> uses an experimental mode of the <b>axel</b>
application which tries to determine the closest server that has a
certain file. The use of <b>axel</b> and <b>axelautomirror</b> are not recommended at this
time. The default value is <b>curl</b>.
<b>The application you chose as DownloadMethod MUST be installed!</b> (i.e. <tt style="white-space: nowrap;">fink</tt> won't fall back to <b>curl</b> if you try to use a download application that isn't present.
          </p>
        </li>
        <li>
          <p>
            <b>SelfUpdateMethod:</b> point, rsync or cvs</p>
          <p>
<tt style="white-space: nowrap;">fink</tt> can use some different methods to update the package info files.
<b>rsync</b> is the recommended setting; it uses rsync to download only
modified files in the <a href="#conf.optional">trees</a> that you have enabled. Note that if you have
changed or added to files in the <tt style="white-space: nowrap;">stable</tt> or <tt style="white-space: nowrap;">unstable</tt> trees, using rsync will
delete them. Make a backup first, e.g. in your <tt style="white-space: nowrap;">local</tt> tree. <b>cvs</b> will download using anonymous or
:ext: cvs access from the Fink repository. This has the disadvantage that cvs
can not switch mirrors; if the server is unavailable you will not be able to
update. <b>point</b> will download only the latest released version of the
packages. It is not recommended as your packages may be quite out of date.
          </p>
        </li>
        <li><p><b>SelfUpdateCVSTrees:</b> list of trees
           </p><p>(<tt style="white-space: nowrap;">fink-0.25</tt> and later) By default, the <b>cvs</b> selfupdate method will update only the current
           distribution's tree.  This option overrides the list of distribu-
           tion versions that will be updated during a selfupdate.

           Please note that you will need a recent "cvs" binary installed if
           you wish to include directories that do not have CVS/ directories
           in their entire path (e.g., dists/local/main or similar).</p></li>
        <li>
          <p>
            <b>UseBinaryDist:</b> boolean</p>
          <p>
Causes <tt style="white-space: nowrap;">fink</tt> to try to download pre-compiled binary packages from the binary
distribution if available and if the binary package is not already on the
system. This can save a lot of installation time and it is therefore 
recommended to set this option. Passing fink the 
<a href="#usage">--use-binary-dist</a> option (or the <tt style="white-space: nowrap;">-b</tt> flag) has the same effect,  
but only operates on that single <tt style="white-space: nowrap;">fink</tt> invocation.  Passing <tt style="white-space: nowrap;">fink</tt> the
           <tt style="white-space: nowrap;">--no-use-binary-dist</tt> flag overrides this, and compiles from source
           for that single <tt style="white-space: nowrap;">fink</tt> invocation.
          </p><p>Note that this mode instructs <tt style="white-space: nowrap;">fink</tt> to download an available binary  
           if that version is the latest available version of the package; it does <b>not</b> cause <tt style="white-space: nowrap;">fink</tt>
           to choose a version based on its binary availability.
</p>
        </li>
      </ul>
    
    <h3><a name="conf.mirrors">5.6 Mirror Settings</a></h3>
      
      <p>Getting software from the Internet can be a tedious thing and often
downloads are not as fast as we would like them to be. Mirror servers
host copies of files available on other servers, but may have a faster
connection to the Internet or be geographically closer to you, thus
enabling you to download files faster. They also help reduce load on
busy primary servers, for example <b>ftp.gnu.org</b>, and they
provide an alternative should one server not be reachable.</p>
      <p>In order for Fink to pick the best mirror for you, you must tell it
which continent and which country you reside in. If downloads from one
server fail, it will prompt you if you want to retry from the same
mirror, a different mirror in the same country or continent, or a
different mirror anywhere in the world.</p>
      <p>The <b>fink.conf</b> file holds settings about which mirrors you
would like to use.</p>
      <ul>
        <li>
          <p>
            <b>MirrorContinent:</b> three letter code</p>
          <p>You should change this value using the <tt style="white-space: nowrap;">fink configure</tt>
command. The three letter code is one found in
<tt style="white-space: nowrap;">/sw/lib/fink/mirror/_keys</tt>.
For example, if you live in Europe:</p>
          <pre>MirrorContinent: eur</pre>
        </li>
        <li>
          <p>
            <b>MirrorCountry:</b> six letter code</p>
          <p>You should change this value using the <tt style="white-space: nowrap;">fink configure</tt>
command. The three letter code is one found in
<tt style="white-space: nowrap;">/sw/lib/fink/mirror/_keys</tt>.
For example, if you live in Austria:</p>
          <pre>MirrorCountry: eur-AT</pre>
        </li>
        <li>
          <p>
            <b>MirrorOrder:</b> MasterFirst or MasterLast or MasterNever or ClosestFirst</p>
          <p>
Fink supports 'Master' mirrors, which are mirrored repositories of the source
tarballs for all Fink packages. The advantage of using the Master mirror set is that 
the source download URLs will never break. Users can choose to use 
these mirrors which are maintained by the Fink team, or to use only the original 
source URLs and external mirror sites such as the gnome, KDE, and debian mirror sites.
Additionally users can choose to combine the two sets, which are then searched in proximity order, as 
documented above. When using the MasterFirst or MasterLast options, the user can 'skip ahead' 
to the Master (or non Master) set if a download fails. The options are:
</p>
          <pre>
MasterFirst - Search "Master" source mirrors first.
MasterLast - Search "Master" source mirrors last.
MasterNever - Never use "Master" source mirrors.
ClosestFirst - Search closest source mirrors first (combine all mirrors into one set).
</pre>
        </li>
        <li><p><b>Mirror-rsync:</b>
           </p><p>(<tt style="white-space: nowrap;">fink-0.25.2</tt> and later) When doing <tt style="white-space: nowrap;">fink selfupdate</tt> with the <b>SelfupdateMethod</b> set to <tt style="white-space: nowrap;">rsync</tt>,
           this is the rsync url to sync from.  This should be an anonymous
           rsync url, pointing to a directory which contains all the fink Dis-
           trubutions and Trees.
</p></li>
      </ul>
    
    <h3><a name="conf.developer">5.7 Developer Settings</a></h3>
      
      <p>Some options in the  <tt style="white-space: nowrap;">fink.conf</tt> file are only useful to
developers. We do not recommend that conventional Fink users modify
them. The following options fall into this category.</p>
      <ul>
        <li>
          <p>
            <b>KeepRootDir:</b> boolean</p>
          <p>Causes <tt style="white-space: nowrap;">fink</tt> not to delete the directory <tt style="white-space: nowrap;">root-[name]-[version]-[revision]</tt> in the <b>Buildpath</b>
after building a package. Defaults to false. <b>Be careful, this
option can fill your hard-disk quickly!</b>
Passing <tt style="white-space: nowrap;">fink</tt> the <b>-K</b> flag has the same effect, but
only operates on that single <tt style="white-space: nowrap;">fink</tt> invocation.
          </p>
        </li>
        <li>
          <p>
            <b>KeepBuildDir:</b> boolean</p>
           <p>Causes <tt style="white-space: nowrap;">fink</tt> not to delete the directory <tt style="white-space: nowrap;">[name]-[version]-[revision]</tt> in the <b>Buildpath</b>
after building a package. Defaults to false. <b>Be careful, this
fill your hard-disk quickly!</b>
Passing <tt style="white-space: nowrap;">fink</tt> the <b>-k</b> flag has the same effect, but
only operates on that single <tt style="white-space: nowrap;">fink</tt> invocation.
          </p>
        </li>
      </ul>
    
    <h3><a name="conf.advanced">5.8 Advanced Settings</a></h3>
      
      <p>There are some other options which may be useful, but require some knowledge to get right.</p>
      <ul>
        <li>
          <p>
            <b>MatchPackageRegEx:</b> </p>
          <p>Causes fink not to ask which package to install if one (and only one) of the choices matches the perl Regular Expression given here. Example:</p>
          <pre>MatchPackageRegEx: (.*-ssl$|^xfree86$|^xfree86-shlibs$)</pre>
          <p>will match packages ending in '-ssl', and will match 'xfree86' and 'xfree86-shlibs' exactly.</p>
        </li>
        <li>
          <p>
            <b>CCacheDir:</b> path</p>
          <p>If the Fink package <tt style="white-space: nowrap;">ccache-default</tt> is installed, the cache files it makes
while building Fink packages will be placed here. Defaults to <tt style="white-space: nowrap;">/sw/var/ccache</tt>. If set to <tt style="white-space: nowrap;">none</tt>, fink will not set the CCACHE_DIR environment variable and ccache will use <tt style="white-space: nowrap;">$HOME/.ccache</tt>, potentially putting root-owned files into your home directory.
<b>Only available in fink newer than version 0.21.0</b>.
          </p>
        </li>
        <li><p><b>NotifyPlugin:</b> plugin</p><p>
           Specify a notification plugin to tell you when packages have been
           installed/uninstalled.  Defaults to Growl (requires <tt style="white-space: nowrap;">Mac::Growl</tt> to
           operate).  Other plugins can be found in the
           <tt style="white-space: nowrap;">/sw/lib/perl5/Fink/Notify</tt> directory.  On <tt style="white-space: nowrap;">fink-0.25</tt> and later they are listed in the output of <tt style="white-space: nowrap;">fink plugins</tt>.  See the <a href="http://wiki.finkproject.org/index.php/Fink:Notificati%20on_Plugins">Fink Developer Wiki</a> for more information.
</p></li>
        <li><p><b>AutoScanpackages:</b> boolean
           </p><p>When <tt style="white-space: nowrap;">fink</tt> builds new packages, <tt style="white-space: nowrap;">apt-get</tt> does not immediately know about
           them.  Historically, the command <tt style="white-space: nowrap;">fink scanpackages</tt> had to be run
           for <tt style="white-space: nowrap;">apt-get</tt> to notice the new packages, but now this happens auto
           matically. If this option is present and <b>false</b>, then <tt style="white-space: nowrap;">fink
           scanpackages</tt> will no longer be run automatically after packages are
           built.  Defaults to <b>true</b>.
</p></li>
        <li><p><b>ScanRestrictivePackages:</b> boolean
           </p><p>When scanning the packages for <tt style="white-space: nowrap;">apt-get</tt>, <tt style="white-space: nowrap;">fink</tt> normally scans all
           packages in the current trees. However, if the resulting apt repository will be made publically available, the administrator may be
           legally obligated not to include packages with <tt style="white-space: nowrap;">Restrictive</tt> or
           <tt style="white-space: nowrap;">Commercial</tt> licenses. If this option is present and <b>false</b>, then Fink
           will omit those packages when scanning.
</p></li>
      </ul>
    
    <h3><a name="conf.sourceslist">5.9 Managing apt's sources.list file</a></h3>
      
      <p>Fink actively manages the file
<tt style="white-space: nowrap;">/sw/etc/apt/sources.list</tt> which is used by apt to locate
binary files for installation.  The default sources.list file looks 
something like this, adjusted to match your Distribution and Trees:
</p>
      <pre># Local modifications should either go above this line, or at the end.
#
# Default APT sources configuration for Fink, written by the fink program

# Local package trees - packages built from source locally
# NOTE: this is automatically kept in sync with the Trees: line in 
# /sw/etc/fink.conf
# NOTE: run 'fink scanpackages' to update the corresponding Packages.gz files
deb file:/sw/fink local main
deb file:/sw/fink stable main crypto

# Official binary distribution: download location for packages
# from the latest release
deb http://us.dl.sourceforge.net/fink/direct_download 10.3/release main crypto

# Official binary distribution: download location for updated
# packages built between releases
deb http://us.dl.sourceforge.net/fink/direct_download 10.3/current main crypto

# Put local modifications to this file below this line, or at the top.
</pre>
      <p>With this default file, apt-get first looks in your local installation
for already-compiled binaries, and then looks in the official binary
distribution.  You can alter this by making entries at the beginning of
the file (which will be searched first) or at the end of the file (which
will be searched last).</p>
      <p>If you change your Trees line or the Distribution you are using,
fink will automatically modify the "default" portion of the file to
correspond to the new values.  Fink will, however, preserve any local
modifications you have made to the file, provided that you confine your
modifications to the top of the file (above the first default line) and
the bottom of the file (below the last default line).
</p>
    
  <h2><a name="usage">6 Using the fink Tool from the Command Line</a></h2>
    
    
    <h3><a name="usage.using">6.1 Using the fink tool</a></h3>
      
      <p>The <tt style="white-space: nowrap;">fink</tt> tool uses several suffix commands to work on packages from the source distribution. 
Some of them need at
least one package name, but can handle several package names at
once. You can specify just the package name (e.g. gimp), or a fully
qualified name with a version number (e.g. gimp-1.2.1) or with both version and revision numbers (e.g. gimp-1.2.1-3). Fink will automatically choose the latest available
version and revision when they are not specified.  Others have different options.</p>
      <p>What follows is a list of the commands for the <tt style="white-space: nowrap;">fink</tt> tool:</p>
    
    <h3><a name="usage.options">6.2 Global options</a></h3>
      
      <p>
There are some options, which apply to all fink commands. If you 
type <tt style="white-space: nowrap;">fink --help</tt> you get the list of options: 
      </p>
      <p>(as of <tt style="white-space: nowrap;">fink-0.26.0</tt>)</p>
      <p><b>-h, --help</b> - displays help text.
</p>
      <p><b>-q, --quiet</b>  - causes <tt style="white-space: nowrap;">fink</tt> to be less verbose, opposite of <b>--verbose</b>.  Overrides the <a href="#conf.optional">Verbose</a> flag in <tt style="white-space: nowrap;">fink.conf</tt>.
</p>
      <p><b>-V, --version</b> - display version information.
</p>
      <p><b>-v, --verbose</b> - causes  <tt style="white-space: nowrap;">fink</tt> to be more verbose, opposite of <b>--quiet</b>.  Overrides the <a href="#conf.optional">Verbose</a> field in <tt style="white-space: nowrap;">fink.conf.</tt>
</p>
      <p><b>-y, --yes</b> - assume default answer for all interactive 
                        questions.
</p>
      <p><b>-K, --keep-root-dir</b>   - Causes <tt style="white-space: nowrap;">fink</tt> not to delete the
                        <tt style="white-space: nowrap;">root-[name]-[version]-[revision]</tt>
		        directory in the <a href="#conf.optional">Buildpath</a> after building a package.  Corresponds to the <a href="#conf.developer">KeepRootDir</a> field in <tt style="white-space: nowrap;">fink.conf</tt>.
</p>
      <p><b>-k, --keep-build-dir</b>  - Causes <tt style="white-space: nowrap;">fink</tt> not to delete the
                        <tt style="white-space: nowrap;">[name]-[version]-[revision]</tt>
                        directory in the <a href="#conf.optional">Buildpath</a> after building a package.  Corresponds to the <a href="#conf.developer">KeepBuildDir</a> field in <tt style="white-space: nowrap;">fink.conf</tt>.</p>
      <p><b>-b, --use-binary-dist</b> - download pre-compiled packages from the binary 
                        distribution if available (e.g. to reduce compile
		        time or disk usage).
		        Note that this mode instructs fink to download the
                        version it wants if that version is available for
		        download; it does not cause fink to choose a version
    		        based on its binary availability.  Corresponds to the <a href="#conf.downloading">UseBinaryDist</a> flag in <tt style="white-space: nowrap;">fink.conf</tt>.
</p>
      <p><b>--no-use-binary-dist</b>  - Don't use pre-compiled binary packages from the binary 
		        distribution, opposite of the --use-binary-dist flag. 
                        This is the default unless overridden by setting <tt style="white-space: nowrap;">UseBinaryDist: true </tt>in 
                        the <tt style="white-space: nowrap;">fink.conf</tt> configuration file. 
</p>
      <p><b>--build-as-nobody</b>     - Drop to a non-root user when performing the unpack,
                        patch, compile, and install phases. Note that packages
                        built with this option may be non-functional. You
                        should use this mode for package development and 
                        debugging only.
</p>
      <p><b>-m, --maintainer</b>
            - (<tt style="white-space: nowrap;">fink-0.25</tt> and later) Perform actions useful to package maintainers: run validation on
           the <tt style="white-space: nowrap;">.info</tt> file before building and on the <tt style="white-space: nowrap;">.deb</tt> after building a
           package; turn certain build-time warnings into fatal errors; (<tt style="white-space: nowrap;">fink-0.26</tt> and later) run the test suites as specified in the  field.  This sets <b>--tests</b> and <b>--validate</b> to <tt style="white-space: nowrap;">on</tt>.</p>
      <p><b>--tests[=on|off|warn]</b>         - (<tt style="white-space: nowrap;">fink-0.26.0</tt> and later) Causes <tt style="white-space: nowrap;">InfoTest</tt> fields to be activated and test suites specified
           via <tt style="white-space: nowrap;">TestScript</tt> to be executed (see the <a href="../packaging/packaging.en.html#reference.fields">Fink Packaging Manual</a>).  If no argument is given to this
           option or if the argument is <tt style="white-space: nowrap;">on</tt> then failures in test suites will
           be considered fatal errors during builds.  If the argument is <tt style="white-space: nowrap;">warn</tt>
           then failures will be treated as warnings.</p>
      <p><b>--validate[=on|off|warn]</b> -
           Causes packages to be validated during a build.  If no argument is
           given to this option or if the argument is <tt style="white-space: nowrap;">on</tt> then validation failures will be considered fatal errors during builds.  If the argument is <tt style="white-space: nowrap;">warn</tt> then failures will be treated as warnings.</p>
      <p><b>-l, --log-output</b>
            - Save a copy of the terminal output during each package building
           process. By default, the file is stored in
           <tt style="white-space: nowrap;">/tmp/fink-build-log_[name]-[version]-[revision]_[date]-[time]</tt> but
           one can use the <b>--logfile</b> flag to specify an alternate filename.</p>
      <p><b>--no-log-output</b>
            - Don't save a copy of the output during package-building, opposite
           of the <b>--log-output</b> flag. This is the default.</p>
      <p><b>--logfile=filename</b>
            - Save package build logs to the file <tt style="white-space: nowrap;">filename</tt> instead of the default
           file (see the <b>--log-output</b> flag, which is implicitly set by the
           <b>--logfile</b> flag). You can use percent-expansion codes to include
           specific package information automatically. A complete list of percent-expanions is available in the <a href="../packaging/packaging.en.html">Fink Packaging Manual</a>; some common percent-expansions are:</p>
      <ul>
        <li>                 <b>%n</b>    - package name
                 </li>
        <li><b>%v</b>    - package version
                 </li>
        <li><b>%r</b>    - package revision</li>
      </ul>
      <p><b>-t, --trees=expr</b>
           - Consider only packages in trees matching <b>expr</b>.

           The format of expr is a comma-delimited list of tree specifica-
           tions. Trees listed in <tt style="white-space: nowrap;">fink.conf</tt> are compared against <b>expr</b>.  Only
           those which match at least one tree specification are considered by
           <tt style="white-space: nowrap;">fink</tt>, in the order of the first specifications which they match. If
           no <b>--trees</b> option is used, all trees listed in <tt style="white-space: nowrap;">fink.conf</tt> are
           included in order.

           A tree specification may contain a slash (/) character, in which
           case it requires an exact match with a tree. Otherwise, it matches
           against the first path-element of a tree. For example,
           <b>--trees=unstable/main</b> would match only the <b>unstable/main</b> tree,
           while <b>--trees=unstable</b> would match both unstable/main and
           <b>unstable/crypto</b>.

           There exist magic tree specifications which can be included in
           <b>expr</b>:</p>
      <ul>
        <li><b>status</b>
                       - Includes packages in the dpkg status database.

                 </li>
        <li><b>virtual</b>
                       - Includes virtual packages which reflect the capabilities of the system.
</li>
      </ul>
      <p>Exclusion of (or failure to include) these magic trees is currently
           only supported for operations which do not install or remove packages.</p>
      <p><b>-T, --exclude-trees=expr</b>
           Consider only packages in trees not matching expr.

           The syntax of expr is the same as for <b>--trees</b>, including the magic
           tree specifications. However, matching trees are here excluded
           rather than included. Note that trees matching both <b>--trees</b> and
           <b>--exclude-trees</b> are excluded.
</p>
      <p> Examples of <b>--trees</b> and --exclude-trees:

                 </p>
      <ul>
        <li><tt style="white-space: nowrap;">fink --trees=stable,virtual,status install <b>foo</b></tt> 
                       <p>Install <b>foo</b> as if <tt style="white-space: nowrap;">fink</tt> was using the stable tree, even
                       if unstable is enabled in <tt style="white-space: nowrap;">fink.conf</tt>.
</p></li>
        <li><tt style="white-space: nowrap;">fink --exclude-trees=local install <b>foo</b></tt> 
                       <p>Install the version of <b>foo</b> in Fink, not the locally
                       modified version.

</p></li>
        <li><tt style="white-space: nowrap;">fink --trees=local/main list -i</tt>
                       <p>List the locally modified packages which are installed.</p></li>
      </ul>
      <p>Most of these options are self-explanatory. Many can also be set in the 
<a href="#conf">Fink configuration file</a> (<tt style="white-space: nowrap;">fink.conf</tt>) if you want 
to set them permanently and not just for that invocation of <tt style="white-space: nowrap;">fink</tt>.</p>
    
    <h3><a name="usage.install">6.3 install</a></h3>
      
      <p>The <b>install</b> command is used to install packages. It downloads,
configure, builds and installs the packages you name. It will also
install required dependencies automatically, but will ask you for
confirmation before it does so. Example:</p>
      <pre>fink install nedit

Reading package info...
Information about 131 packages read.
The following additional package will be installed:
 lesstif
Do you want to continue? [Y/n]</pre>
      <p>Use of the <a href="#usage.options">--use-binary-dist</a> option with <tt style="white-space: nowrap;">fink install</tt> can speed the build process for complicated packages by quite a lot.</p>
      <p>Aliases for the install command: <b>update, enable, activate, use</b> (most
of these for historic reasons).</p>
    
    <h3><a name="usage.remove">6.4 remove</a></h3>
      
      <p>The remove command removes packages from the system by calling '<tt style="white-space: nowrap;">dpkg --remove</tt>'. The current default implementation has a flaw: it
doesn't check dependencies itself but rather completely leaves that to
the dpkg tool (usually this poses no problem, though).</p>
      <p>The <b>remove</b> command only removes the actual package files,
(excluding configuration files), but leaves
the <tt style="white-space: nowrap;">.deb</tt> compressed package file intact. This means that you can
re-install the package later without going through the compile process
again. If you need the disk space, you can remove the <tt style="white-space: nowrap;">.deb</tt> from the
<tt style="white-space: nowrap;">/sw/fink/dists</tt> tree.</p>
      <p>These flags can be used with the <b>fink remove</b> command
</p>
      <pre>-h,--help             - Show the options which are available.
-r,--recursive        - Also remove packages that depend on the package(s) to
                        be removed (i.e. overcome the above-mentioned flaw).</pre>
      <p>Aliases: <b>disable, deactivate, unuse, delete</b>.</p>
    
    <h3><a name="usage.purge">6.5 purge</a></h3>
      
      <p>The <b>purge</b> command purges packages from the system. This is
the same as the <b>remove</b> command except that it removes configuration
files as well.</p>
      <p>This command takes the:</p>
      <pre>-h,--help
-r,--recursive</pre>
      <p>options.</p>
    
    <h3><a name="usage.update-all">6.6 update-all</a></h3>
      
      <p>This command updates all installed packages to the latest version. It
does not need a package list, so you just type:</p>
      <pre>fink update-all</pre>
      <p><a href="#usage.options">--use-binary-dist</a> is also useful with this command.</p>
    
    <h3><a name="usage.list">6.7 list</a></h3>
      
      <p>
This command produces a list of available packages, listing
installation status, the latest version and a short description.
If you call it without parameters, it will list all available
packages.
You can also pass a name or a shell pattern, and fink will list all
packages that match.
</p>
      <p>
The first column displays the installation state with the following
meanings:
</p>
      <pre>    not installed
 i  latest version is installed
(i) installed, but a newer version is available
 p  a virtual package provided by a package that is installed</pre>
      <p> The version column always lists the latest (highest) version known for the package, regardless of what version (if any) you have installed.  To see all versions of a package available on your system, use the <a href="#usage.dumpinfo">dumpinfo</a> command.</p>
      <p>
There are also some flags for the <tt style="white-space: nowrap;">fink list</tt> command
</p>
      <pre>
-h,--help
	  Show the options which are available.
-t,--tab
	  Output the list in a tab delimited format, useful for
	  running the output through a script.
-i,--installed
	  Show only those packages which are currently installed.
-o,--outdated
	  Show only those packages which are out of date.
-u,--uptodate
	  Show only packages which are up to date.
-n,--notinstalled
	  Show packages which are not currently installed.
-s expr,--section=expr
	  Show only packages in the sections matching the regular
	  expression expr.
-m expr,--maintainer=expr
          Show only packages with the maintainer  matching the
          regular expression expr.
-w=xyz,--width=xyz
	  Sets the width of the display you would like the output
	  formatted for. xyz is either a numeric value or auto.
	  auto will set the width based on the terminal width.
	  The default is auto.
</pre>
      <p>
Some usage examples:
</p>
      <pre>
fink list                 - list all packages
fink list bash            - check if bash is available and what version.
fink list --tab --outdated | cut -f 2     
                          - just list the names of the out of date packages.
fink list --section=kde   - list the packages in the kde section
fink list --maintainer=fink-devel
                          - list the packages with no maintainer
fink --trees=unstable list --maintainer=fink-devel
                          - list the packages with no maintainer, but only in the unstable tree.
fink list "gnome*"        - list all packages that start with 'gnome'
</pre>
      <p>
The quotes in the last example are necessary to stop the shell from
interpreting the pattern itself.
</p>
    
    <h3><a name="usage.apropos">6.8 apropos</a></h3>
      
      <p>
This command behaves almost identical to <a href="#usage.list">fink list</a>. The most
notable difference is that <tt style="white-space: nowrap;">fink apropos</tt> also searches
the package descriptions to find packages. The second difference is that 
the search string must be supplied and is not optional.
</p>
      <pre>
fink apropos irc          - list all packages for which 'irc' 
			    occurs in the name or description.
fink apropos -s=kde irc   - the same as above, but restricted to 
			    packages from the kde section.
</pre>
    
    <h3><a name="usage.describe">6.9 describe</a></h3>
      
      <p>
This command displays a description of the package you name on the
command line.
Note that only a small part of the packages currently have a
description.
</p>
      <p>
Aliases: <b>desc, description, info</b>
</p>
    
    <h3><a name="usage.plugins">6.10 plugins</a></h3>
      
      <p> List the (optional) plugins available to the <tt style="white-space: nowrap;">fink</tt> program.  Currently lists the notification mechanisms and the source-tarball
           checksum algorithms.</p>
    
    <h3><a name="usage.fetch">6.11 fetch</a></h3>
      
      <p>Downloads the named packages, but does not install them. This command
will download the tarballs even if they were downloaded before.</p>
      <p>The following flags can be used with the <tt style="white-space: nowrap;">fetch</tt> command:</p>
      <pre>-h,--help		Show the options which are available.
-i,--ignore-restrictive	Do not fetch packages that are &amp;quot;License: Restrictive&amp;quot;.
                      	Useful for mirrors, because some restrictive packages
                      	do not allow source mirroring.
-d,--dry-run		Just display information about the file(s) that would
			be downloaded for the package(s) to be fetched; do not
			actually download anything.
-r,--recursive		Also fetch packages that are dependencies of the
			package(s) to be fetched.</pre>
    
    <h3><a name="usage.fetch-all">6.12 fetch-all</a></h3>
      
      <p>Downloads <b>all</b> package source files. Like <a href="#usage.fetch">fetch</a>, this downloads the
tarballs even when they were downloaded before.</p>
      <p>These flags can be used with the <tt style="white-space: nowrap;">fink fetch-all</tt> command:</p>
      <pre>-h,--help
-i,--ignore-restrictive
-d,--dry-run</pre>
    
    <h3><a name="usage.fetch-missing">6.13 fetch-missing</a></h3>
      
      <p>Downloads <b>all</b> missing package source files. This command will only download
files that are not present on the system.</p>
      <p>These flags can be used with the <tt style="white-space: nowrap;">fink fetch-missing</tt> command:</p>
      <pre>-h,--help
-i,--ignore-restrictive
-d,--dry-run</pre>
    
    <h3><a name="usage.build">6.14 build</a></h3>
      
      <p>Builds a package, but does not install it. As usual, the source
tarballs are downloaded if they can not be found. The result of this
command is an installable .deb package file, which you can quickly
install later with the install command. This command will do nothing
if the .deb already exists. Note that dependencies are still
<b>installed</b>, not just built.</p>
      <p>
The <a href="#usage.options">--use-binary-dist option</a> is applicable here.
      </p>
    
    <h3><a name="usage.rebuild">6.15 rebuild</a></h3>
      
      <p>Builds a package (like the build command), but ignores and overwrites
the existing .deb file. If the package is installed, the newly created
.deb file will also be installed in the system via <tt style="white-space: nowrap;">dpkg</tt>. Very useful
during package development.</p>
    
    <h3><a name="usage.reinstall">6.16 reinstall</a></h3>
      
      <p>Same as install, but will install the package via <tt style="white-space: nowrap;">dpkg</tt> even when it is
already installed. You can use this when you accidentally deleted
package files or changed configuration files and want to get the
default settings back.</p>
    
    <h3><a name="usage.configure">6.17 configure</a></h3>
      
      <p>
Reruns the <tt style="white-space: nowrap;">fink</tt> configuration process.
This will let you change your mirror sites and proxy settings, among
others.
</p>
      <p><b>New in</b> <tt style="white-space: nowrap;">fink-0.26.0</tt>: This command will also let you turn on the unstable trees if desired.</p>
    
    <h3><a name="usage.selfupdate">6.18 selfupdate</a></h3>
      
      <p>
	This command automates the process of upgrading to a new Fink
	release. It checks the Fink website to see if a new version is
	available. It then downloads the package descriptions and updates
	the core packages, including <tt style="white-space: nowrap;">fink</tt> itself. This command can upgrade
	to regular releases, but it can also setup your <tt style="white-space: nowrap;">/sw/fink/dists</tt>
	directory tree for direct CVS or rsync updates, if you select one of those options the first time this command is run.  This means that you then
	will be able to access the very latest revisions of all packages.
</p>
      <p>
If the <a href="#usage.options">--use-binary-dist option</a> is enabled,
the list of available packages in the binary distribution is also updated.
      </p>
    
    <h3><a name="usage.selfupdate-rsync">6.19 selfupdate-rsync</a></h3>
      
      <p>Use this command to make <tt style="white-space: nowrap;">fink selfupdate</tt> use rsync to update its package list.</p>
      <p>This is the recommended way to update Fink when building from source.</p>
      <p><b>Note:</b>  rsync updates only update the active <a href="#conf.optional">trees</a> (e.g. if unstable isn't turned on in <tt style="white-space: nowrap;">fink.conf</tt> the list of unstable packages won't be updated.</p>
    
    <h3><a name="usage.selfupdate-cvs">6.20 selfupdate-cvs</a></h3>
      
      <p>Use this command to make <tt style="white-space: nowrap;">fink selfupdate</tt> use CVS access to update its package list.</p>
      <p>CVS updating is deprecated, except for developers and those people who are behind firewalls that disallow rsync.</p>
    
    <h3><a name="usage.index">6.21 index</a></h3>
      
      <p>
   Rebuilds the package cache. You should not normally need to execute
   this manually, as <tt style="white-space: nowrap;">fink</tt> should auto-detect when it needs to be updated.
</p>
    
    <h3><a name="usage.validate">6.22 validate</a></h3>
      
      <p>
   This command performs various checks on <tt style="white-space: nowrap;">.info</tt> and <tt style="white-space: nowrap;">.deb</tt> files. Package
   maintainers should run this on their package descriptions and
   corresponding built packages before submitting them.</p>
      <p>The following optional options may be used:</p>
      <pre>-h,--help            - Show the options which are available.
-p,--prefix          - Simulate an alternate Fink basepath prefix (%p) within
                      the files being validated.
--pedantic, --no-pedantic
                     - Control the display of nitpicky formatting warnings.
                      --pedantic is the default.</pre>
      <p>
   Aliases: <b>check</b>
</p>
    
    <h3><a name="usage.scanpackages">6.23 scanpackages</a></h3>
      
      <p>
   Updates the <tt style="white-space: nowrap;">apt-get</tt> database of debs; defaults to updating all of the trees, but may be restricted to a set of one or more trees given as arguments.
</p>
    
    <h3><a name="usage.cleanup">6.24 cleanup</a></h3>
      
      <p>
   Removes obsolete and temporary files. 
   This can reclaim large amounts of disk space.  One or more modes may be specified:</p>
      <pre>--debs               - Delete .deb files (compiled binary package archives)
                       corresponding to versions of packages that are neither
                       described by a package description (.info) file in the
                       currently-active trees nor presently installed.
--sources,--srcs     - Delete sources (tarballs, etc.) that are not used by
                       any package description (.info) file in the currently-
                       active trees.
--buildlocks, --bl   - Delete stale buildlock packages.
--dpkg-status        - Remove entries for packages that are not installed from
                       the dpkg "status" database.
--obsolete-packages  - Attempt to uninstall all installed packges that are
                       obsolete. (new in fink-0.26.0)
--all                - All of the above modes. (new in fink-0.26.0)</pre>
      <p>If no mode is specified, <tt style="white-space: nowrap;">--debs --sources</tt> is the default action. </p>
      <p>In addition, the following options may be used:</p>
      <pre>-k,--keep-src        - Move old source files to /sw/src/old/ instead of deleting them.
-d,--dry-run         - Print the names of the files that would be deleted, but
                       do not actually delete them.
-h,--help            - Show the modes and options which are available.</pre>
      
    
    <h3><a name="usage.dumpinfo">6.25 dumpinfo</a></h3>
      
      <p>
	Shows how <tt style="white-space: nowrap;">fink</tt> parses parts of a package's <tt style="white-space: nowrap;">.info</tt> file. Various
	fields and percent expansions will be displayed according
	to <b>options</b> as follows:
      </p>
      <pre>
-h, --help           - Show the options which are available.
-a, --all            - Display all fields from the package description.
                       This is the default mode when no --field or
                       --percent flags are given.
-f fieldname,        - Display the given fieldname(s),
  --field=fieldname    in the order listed.
-p key,              - Display the given percent expansion key(s),
   --percent=key       in the order listed.
      </pre>
    
    <h3><a name="usage.show-deps">6.26 show-deps</a></h3>
      
      <p>Displays a human-readable list of the compile-time (build) and run-
           time (installation) dependencies of the listed package(s).</p>
    
  <hr><h2>Copyright Notice</h2><p>Copyright (c) 2001 Christoph Pfisterer,
Copyright (c) 2001-2011 The Fink Project.
You may distribute this document in print for private purposes,
provided the document and this copyright notice remain complete and
unmodified. Any commercial reproduction and any online publication
requires the explicit consent of the author.</p><hr>
<p>Generated from <i>$Fink: uguide.en.xml,v 1.55 2010/07/10 23:21:42 alexkhansen Exp $</i></p></body></html>
